package cn.lixu;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 * @author LiXu
 * @date 2022/08/18 0018 18:15:59
 */
@SpringBootApplication
//表名此服务是Eure客户端，开启Eureka客户端功能，不加此注解默认也开启客户端功能
@EnableEurekaClient
@EnableCircuitBreaker //表示此服务开启Hystrix功能,开启熔断功能
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class, args);
    }

    @Bean
    @LoadBalanced // 让RestTemplate拥有负载均衡能力
    /**
     *@author lixu
     *@data 2022/08/18 0018 18:55:46
     * @return: org.springframework.web.client.RestTemplate
     * @Description: 在项目启动时，实例化一个RestTemplate对象在Spring容器中，实例化对象的名称就是方法名称，此种方式必须当前类是一个配置类[SpringBootConfiguration]才会生效
     **/
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
